package com.lovo.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.lovo.bean.SysGoods;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * ??̨??????Ʒ? 服务类
 * </p>
 *
 * @author lovo
 * @since 2022-09-17
 */
public interface ISysGoodsService extends IService<SysGoods> {
    /**
     * 根据商品id更改状态为已上架
     *
     * @param goodsId 商品ID
     */
    void updateStatusByGoodsId(Integer goodsId);

    /**
     * 动态分页查询
     *
     * @param PageNO    页码
     * @param goodsName 商品名字
     * @param goodsType 商品类型
     * @return 分页对象
     */
    IPage<SysGoods> findGoodsByItem(Integer PageNO, String goodsName, String goodsType);

    /**
     * 分页查询所有商品
     *
     * @param PageNO 页码
     * @return 分页对象
     */
    IPage<SysGoods> findAllGoods(Integer PageNO, String goodsName, String goodsType);

    /**
     * 根据状态（已上架）分页查询商品
     *
     * @param PageNO 页码
     * @return 分页商品（已上架）对象
     */
    IPage<SysGoods> findGoodsByStatus(Integer PageNO);

    /**
     * 销售
     * @param goodsId   商品id
     * @param num   销售数量
     */
    public void sellGoods(Integer goodsId, Integer num);

    /**
     * 添加库存商品
     * @param goods   商品对象
     */
    public void sendProduct(SysGoods goods);

}
